package struts2.sample07.action;

import org.apache.struts2.config.Result;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

import struts2.sample07.mapping.User;

/**
 * 利用者マスタ削除アクション
 */
@Result("user_master.jsp")
public class UserMasterDeleteAction {

	private User user;
	
	/** hibernateのセッションファクトリー */
	private SessionFactory sessionFactory;


	/**
	 * 利用者を削除するメソッド
	 */
	public String delete(){
		Session dbSession = sessionFactory.openSession();
		
		try{
			// トランザクション開始
			Transaction transaction = dbSession.beginTransaction();
			
			// データベースから利用者を持ってくる
			User entity = (User)dbSession.load(User.class, user.getId());
			// 持ってきた利用者を叩き潰す
			dbSession.delete(entity);
			
			// コミット
			transaction.commit();
		}finally{
			dbSession.close();
		}
		
		return "success";
	}
	

	
	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}


	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}
	
}
